package com.hb.core.pojo.project.section.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.hb.core.pojo.project.section.dto.BidSectionTenderDTO;
import com.hb.core.pojo.project.section.entity.BidSectionTender;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * 投标人投标信息 Mapper 接口
 * </p>
 *
 * @author admin
 * @since 2021-11-09
 */
public interface BidSectionTenderMapper extends BaseMapper<BidSectionTender> {

    /**
     * 根据投标人id查询投标信息
     *
     * @param sectionId 标段id
     * @param tenderId  投标人id
     * @return {@link BidSectionTender}
     * @author gaoyf
     * @date 2021-11-9
     */
    BidSectionTender getBySectionIdAndTenderId(Long sectionId, Long tenderId);

    /**
     * 根据标段id和企业id查询投标信息
     * @param sectionId
     * @param orgId
     * @return
     */
    BidSectionTender getBySectionIdAndOrgId(Long sectionId, Long orgId);

    /**
     * 获取投标信息列表
     *
     * @param page
     * @param bidSectionTender
     * @return
     */
    Page<BidSectionTenderDTO> listBidSectionTender(@Param("page") Page page, @Param("bidSectionTender") BidSectionTenderDTO bidSectionTender);

    /**
     * 根据标段Id查询投标人的登录用户名username
     *      (目前用于开标大厅消息构造消费者)
     *
     * @param sectionId
     * @return
     */
    List<String> getBidderUserNameBySectionId( Long sectionId);
    /**
     *
     * @Description: 获得当前标段解密成功的投标文件列表
     * @Author: zhongdl
     * @Date:2022/2/15 15:53
     * @param sectionId:
     * @return: {@link List< BidSectionTenderDTO> }
     **/
    List<BidSectionTenderDTO> listDecryptionBidSectionTender(@Param("sectionId")Long sectionId,@Param("status")Integer status,@Param("decryptFlag")Integer decryptFlag);

    /**
     * 投标人参与的项目中已完成的项目数量
     * @param tenderId
     * @return
     */
    Integer countFinishedSectionForTender(@Param("tenderId") Long tenderId);

    /**
     * 根据id列表查找已经完成的项目数量
     */
    Integer countFinishedSectionByIds(@Param("idList") List<Long> idList);

    /**
     * 投标人参与的项目数量
     * @param tenderId
     * @return
     */
    Integer countSectionForTender(@Param("tenderId") Long tenderId);
}
